﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using UOL.PagSeguro;
using insidedotnet.UI;
using System.IO;


public partial class AnunciarLogotipo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = AcheiCampinasConfiguration.SiteName +
           " : produtos ou serviços.";

        // Fill the controls with data only on the initial page load
        if (!IsPostBack)
        {
            // Fill controls with data
            PopulateControls();
        }

        //the line below is just for test purposes
        this.VendaPagSeguro1.UrlPagSeguro = "http://localhost:9090/checkout/checkout.jhtml";
    }

    // Populate the controls
    private void PopulateControls()
    {
        // Fill categoriesLabel and categoriesListRemove with data
        string empresaId, empresaName, categoryId, categoryName;
        DataTable empresasCliente = CatalogAccess.GetEmpresasCliente();
        DataTable productCategories = CatalogAccess.GetCategorias();
        

        if (empresasCliente.Rows.Count == 0)
        {
            clickButton.Enabled = false;
            msgLabel.Text = "<strong>Você ainda não cadastrou empresas.</strong><br />";
            empresasList.Enabled = false;
            empresasList.Enabled = false;
            image1FileUpload.Enabled = false;
            homeCheckBox.Enabled = false;
            categoriaCheckBox.Enabled = false;
            categoriesListAssign.Enabled = false;
        }
        else
        {
            msgLabel.Visible = false;
            for (int i = 0; i < empresasCliente.Rows.Count; i++)
            {
                // obtain category id and name
                empresaId = empresasCliente.Rows[i]["empresaID"].ToString();
                empresaName = empresasCliente.Rows[i]["nome"].ToString();
                // populate the list boxes
                empresasList.Items.Add(new ListItem(empresaName, empresaId));
            }

            for (int i = 0; i < productCategories.Rows.Count; i++)
            {
                // obtain category id and name
                categoryId = productCategories.Rows[i]["categoriaID"].ToString();
                categoryName = productCategories.Rows[i]["nome"].ToString();
                // populate the list boxes
                categoriesListAssign.Items.Add(new ListItem(categoryName, categoryId));
            }
            
        }
    }


    protected void clickButton_Click(object sender, EventArgs e)
    {       

        bool cat = categoriaCheckBox.Checked;
        bool front = homeCheckBox.Checked;
        DateTime agora = DateTime.Now;
        string location;

        if (!categoriaCheckBox.Checked && !homeCheckBox.Checked)
        {
            msgLabel.Visible = true;
            msgLabel.Text = "Selecione um tipo de anúncio.<br />";
        }
        else
        {
            if (categoriaCheckBox.Checked)
            {
                UOL.PagSeguro.Produto produto = new UOL.PagSeguro.Produto();
                produto.Descricao = "Banner de " + empresasList.SelectedItem.Text + " na Categoria";
                produto.Codigo = "1";
                produto.Quantidade = 1;
                produto.Valor = 100f;
                this.VendaPagSeguro1.Produtos.Add(produto);
            }

            if (homeCheckBox.Checked)
            {
                UOL.PagSeguro.Produto produto = new UOL.PagSeguro.Produto();
                produto.Descricao = "Banner de " + empresasList.SelectedItem.Text + " na Homepage";
                produto.Codigo = "2";
                produto.Quantidade = 1;
                produto.Valor = 300f;
                this.VendaPagSeguro1.Produtos.Add(produto);
            }

            if (image1FileUpload.FileName != "")
            {
                string fileName1 = agora.ToString("dd_MM_yyyy_HH_mm_ss_") + image1FileUpload.FileName;

                location = Server.MapPath("./ImagensBanners/") + fileName1;

                // save image to server
                image1FileUpload.SaveAs(location);

                //create its thumbnail
                Thumbnail.Create(Server.MapPath(""), "ImagensBanners", "ImagensBanners", fileName1, 150, 94);

                //delete the original image
                File.Delete(location);

                string codPublicacao = CatalogAccess.addPublicacoes(empresasList.SelectedItem.Value, homeCheckBox.Checked, categoriaCheckBox.Checked, categoriesListAssign.SelectedItem.Value, "tb_"+fileName1);
                //voltar o id da publicacao como codigo de referencia
                this.VendaPagSeguro1.CodigoReferencia = codPublicacao;
                this.VendaPagSeguro1.Executar(this.Response);
            }
            else
            {
                msgLabel.Visible = true;
                msgLabel.Text = "Selecione arquivo referente ao banner.<br />";
            }
        }        
   }
}